package cn.iocoder.yudao.module.vos.controller.admin.marketinglistlog.vo;

import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 营销名单日志表（含应答状态）分页 Request VO")
@Data
public class MarketingListLogPageReqVO extends PageParam {

    @Schema(description = "号码")
    private String phoneE164;

    @Schema(description = "分数")
    private BigDecimal score;

    @Schema(description = "创建时间范围")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "手机MD5")
    private String phoneMd5;

    @Schema(description = "业务标签（多选 ANY 命中）")
    private List<String> phoneTags;  // ← 前端多选数组对齐

    @Schema(description = "SecretAccount 主键ID/关联ID", example = "8943")
    private Long secretId;

    @Schema(description = "应答时间范围")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] responseTime;

    @Schema(description = "应答状态：0未应答 1注册 2成交")
    private Integer responseState;

    @Schema(description = "租户ID", example = "31295")
    private Long rechargeTenantId;

    @Schema(description = "名单等级：1差 2中级 3优质")
    private String listLevel;

    // 表里 list_date 是 VARCHAR(50)，格式建议存 yyyy-MM-dd
    @Schema(description = "名单日期范围（可不传；yyyy-MM-dd）")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate[] listDate;    // 不传就不加条件
}
